


import java.util.List;

import javax.vecmath.Vector3d;

import org.junit.Before;
import org.junit.Test;



public class RandomMultiBodySystemTest {
	/**
	 * Unit Test zur Generierung eines zufaelligen Mehrk�rpersystems, angelehnt an unser
	 * eigenes Sonnensystem.
	 */
	RandomMultiBodySystem system;
	int[] rangeMass = {22,27}; //Groesse der Massen zwischen 10^22m und 10^27m
	int[] rangeRadii = {6,7}; // Groesse der Radien zwischen 10^6m und 10^7m
	int numberOfBodies = 50;
	double massCentralBody = 1.99E30;
	int[] spaceCircumrefrence = {9,12}; //der n�chste K�rper kann 10^9m, der weiteste 10^12m entfernt sein von Zentralgestirn.
	int delta_t = 3600*24; // Schrittweite 1 Tag.
	List<Body> bodyList;
	

	@Before
	public void setUp() throws Exception {
		system = new RandomMultiBodySystem(rangeMass,rangeRadii,numberOfBodies,massCentralBody,spaceCircumrefrence,delta_t);
		bodyList = system.getBodyList();

		
	}
	

	
	@Test
	/**
	 * Testet die methode calcOneStep mit einer gewissen Anzahl von Aufrufen.
	 * an.
	 */
	public void testcalcOneStep() {
		final int STEPS = 180;
	
		
		for (int i = 0; i < STEPS; i++) {
			system.calcOneStep();
			String s = "";
			for (Body body : bodyList) {
				s += "id: "+body.getId() +", dis: "+body.getPosition().length() +", ";
				
			}
			System.out.println("STEP: " +i +", " +s);
			
		}
		
		
		
		
		System.out.println("##########################################################################################################");
		System.out.println("##########################################################################################################");
		System.out.println("##########################################################################################################");
	}


	
	


}
